import { CommonEvent } from "../Common/CommonEvent";

/**
 * 不同游戏专属事件
 */
export module EventType {
    export const Common = CommonEvent;

    /**与游戏玩法相关的游戏过程中的事件，从 100,000 开始 */
    export enum LevelEvent {
        startIndex = 100000,
        levelSceneLoadFinish,       //在首页中作为背景时所需的预制件已全部加载完毕
        resurgence,                 //观看视频成功，复活
        cancelResurgence,           //取消复活

        testWin,                    //测试用，直接判定为关卡胜利
        testLose,                   //测试用，直接判定为关卡失败

        mapDataCreateFinish,        //地图数据生成完成

        //游戏操作
        startJoy,                   //按下摇杆
        moveJoy,                    //移动摇杆
        stopJoy,                    //松开摇杆，停止移动

        //关卡变化
        getCollection,              //收集到道具

        shakeScreen,                //碰撞到障碍物，震屏
        scaleScreen,                //视野缩放

        updateLevelTime,            //关卡经历时间变化

        addEffect,                  //播放特效
        removeEffect,               //移除特效
        addParticle,                //添加粒子特效
        removeParticle,             //移除粒子特效

        goodsUSE,

        dropGold,                   //爆出金币
        getGold,                    //玩家拾取到一个金币
        removeGold,                 //移除金币

        removeBarrierGroup,         //移除一组障碍物
        removeBarrierGroupIndex,    //移除一组障碍物后，更新车辆记录的可碰撞范围索引
        addBarriers,                //添加一组被撞开后的物体
        removeBarrier,              //移除一个被撞开的障碍物

        playerCollChangeCarQuad,    //玩家撞到变更车辆的屏障
        playerChangeCar,            //玩家变更了车辆，通知UI更新显示内容
        syncTransformCamera,        //同步坐标转换的相机位置

        playerCollGold,             //玩家收集到金币
        addGoldParticle,            //关卡中时UI层金币动画

        playerEnterTerrain,         //玩家进入恶劣地形
        playerExitTerrain,          //玩家离开恶劣地形

        addCarStreak,               //添加车辆拖尾
        removeCarStreak,            //移除车辆拖尾

        playerGetCarPart,           //玩家收集到零件
        playAddCarPartUIAnim,       //显示收集零件UI动画
        playerDropCarPart,          //玩家掉落零件
        playDropCarPartUIAnim,      //显示掉落零件UI动画
        updatePlayerCurPartCount,   //更新UI玩家当前零件数量
        playerPartFull,             //玩家零件收集满了
        playerPartExitFull,         //玩家零件退出满的状态

        enemyChangeCar,
        enemyArrived,               //敌人到达终点

        //首页，按住屏幕可加速展示场景
        showMapFast,
        showMapSlow,

        //levelInfoUI
        showHandAnim,
        updateLevelProgress,
        updateGold,
        updateMingCi,
        showEndRoadTouchTip,
        hideEndRoadTouchTip,

        //商城预览
        /**更新角色预览效果 */
        setPreview,

        //匹配UI
        /**敌人匹配完成 */
        matchFinish,

        /**修改信息条的金币位置，参数：bool,是否靠左 */
        changeGoldPos,

    }

    /**编辑器专用的事件，从 101,000 开始 */
    export enum EditorEvent {
        startIndex = 101000,

        addNewLevel,        //新建关卡
        createLevel,        //
        chooseLevel,        //选择要编辑的关卡
        removeLevel,        //移除关卡

        mapPosChanged,      //关卡地图位置变更
        mapLenChanged,      //关卡地图长度变更
        mapPersonChanged,   //更新可救援角色数量

        choseItem,          //选择关卡元素

        dragItemOnMap,      //拖动已存在的物体
        dragItemStart,      //开始拖动物体
        dragItemMove,       //更新正在拖动的物体坐标
        dragItemEnd,        //松开拖动的物体
    }
}